Generate valid RSS

Tested simple output feed with http://feedvalidator.org/

Irfan Charania 9 years ago
parent
commit
3aa2d1255b
1 changed files with 4 additions and 2 deletions
  1. 4 2
      app/models/agents/data_output_agent.rb

+ 4 - 2
app/models/agents/data_output_agent.rb

@@ -100,7 +100,8 @@ module Agents
100 100
       if interpolated['secrets'].include?(params['secret'])
101 101
         items = received_events.order('id desc').limit(events_to_show).map do |event|
102 102
           interpolated = interpolate_options(options['template']['item'], event)
103
-          interpolated['guid'] = event.id
103
+          interpolated['guid'] = {'_attributes' => {'isPermaLink' => 'false'}, 
104
+                                  '_contents' => interpolated['guid'].presence || event.id}
104 105
           date_string = interpolated['pubDate'].to_s
105 106
           date =
106 107
             begin
@@ -125,8 +126,9 @@ module Agents
125 126
         else
126 127
           content = Utils.unindent(<<-XML)
127 128
             <?xml version="1.0" encoding="UTF-8" ?>
128
-            <rss version="2.0">
129
+            <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
129 130
             <channel>
131
+             <atom:link href="#{feed_link.encode(:xml => :text)}/users/#{user.id}/web_requests/#{id || '<id>'}/#{params['secret']}.xml" rel="self" type="application/rss+xml" />
130 132
              <title>#{feed_title.encode(:xml => :text)}</title>
131 133
              <description>#{feed_description.encode(:xml => :text)}</description>
132 134
              <link>#{feed_link.encode(:xml => :text)}</link>